/**
 * =====================================================================================
 *
 *      @file:  db_implement.h
 *
 *    	@brief:  提供relation层下方一些实现接口，为了使relation层更可维护
 *
 *      @version:  1.0
 *      Created:  2010年04月12日 14时21分47秒
 *      Revision:  none
 *      Compiler:  gcc -Wall -Wextra db_implement.h
 *
 *      @author:  easyeagel (LiuGuangBao), easyeagel@gmx.com
 *      Company:  简单C++ - www.easycpp.org
 *
 * =====================================================================================
 */

#ifndef M_magus_db_implement_h
#define M_magus_db_implement_h

#ifdef __cplusplus
extern "C"
{
#else
#endif
#include"base.hpp"
#include"cache.hpp"
#include"expression.hpp"

typedef enum db_type_t
{
	e_db_none,
	e_db_root,
	e_db_plant,
	e_db_node,
	e_db_point,
}db_type_t;

/**
 * @brief 内部定义的资源的结构
 * @todo 使用回调函数来实现多态和效率
 */
typedef struct source_t
{
	unsigned use_cache : 1; /**< 指明启用本地缓存功能 */
	unsigned is_cnted : 1; /**< 指明已经与服务器连接 */
	db_type_t used_db_type: 4;
	void* used_db;
	const char* used_db_name;
	cache_t* cache;
}source_t;

const char** dbop_get_plant(source_t* sc);

#ifdef __cplusplus
}
#endif
#endif /* M_magus_db_implement_h */


